The Ekosistem HIP didesain sebagai lapisan abstraksi tipis yang dirancang untuk kompatibilitas kode sumber antara arsitektur AMD dan NVIDIA. Ia memanfaatkan ROCm (Radeon Open Compute) tumpukan, khususnya menggunakan Arsitektur Sistem Heterogen (HSA) runtime dan Pengemudi Fusi Kernel (KFD).
1. Inisialisasi Awal
Inisialisasi dimulai dengan pertukaran tangan rendah tingkat melalui hsa_init(0, ...) dan hsaKmtOpenKFD(...). Panggilan-panggilan penetapan ini menciptakan jembatan komunikasi antara aplikasi ruang pengguna dan perangkat keras GPU AMD.
2. Penemuan Topologi & Properti
Sebelum menjalankan kernel, runtime mengidentifikasi kemampuan perangkat keras menggunakan hsaKmtAcquireSystemProperties dan hsaKmtGetNodeProperties. Ia memetakan memori fisik ke node GPU menggunakan hsaKmtMapMemoryToGPUNodes, memastikan visibilitas tabel halaman bagi perangkat.
3. Jalur Komilasi
Jembatan antara CUDA dan HIP dibangun atas dua pilar: hipify-perl (transpiler berbasis regex) dan hipcc (pembungkus kompiler).
hipify-perl square.cu > square.cpp
hipcc square.cpp -o square.out
4. Logika Versi
Kompatibilitas diterapkan melalui rumus tepat untuk memastikan hipRuntimeGetVersion sesuai dengan tabel ekstensi HSA:
$$\text{HIP\_VERSII} = \text{MAJOR} \times 10^7 + \text{MINOR} \times 10^5 + \text{PATCH}$$